import back from '@/components/back/back.vue';
import { post } from '@/common/js/http.js';


let app = getApp();
let that = null;

export default {
	components: {
		back
	},
	data() {
		return {
			isLoad: false,
			examTypeList: [], // 考试类型列表
			examData: {} // 考试数据，包含专业和课程信息
		};
	},
	onLoad(options) {
		that = this;
		// 加载页面数据
		this.loadPageData();
	},
	onShow() {
		// 页面显示时可以再次刷新数据
		if (!this.isLoad) {
			this.loadPageData();
		}
	},
	methods: {
		// 加载页面数据
		loadPageData() {
			// 获取考试类型列表
			this.getExamTypeList();
		},
		
		// 获取考试类型列表
		async getExamTypeList() {
			try {
				let res = await post('exam/get', {});
				that.examTypeList = res.data;
				// 设置默认选中的考试类型
			if (that.examTypeList.length > 0) {
				// 为第一个考试类型设置激活状态
				that.examTypeList[0].active = true;
				// 调用 getTypeMajor 接口获取专业和课程数据
				await this.getTypeMajorData(that.examTypeList[0].id);
			}
				that.isLoad = true;
			} catch (e) {
				app.showToast('获取考试类型失败');
			}
		},
		
		// 获取考试类型的专业和课程数据
		async getTypeMajorData(examId) {
			try {
				let res = await post('exam/get_type_major', { exam_id: examId });
				console.log('获取到的专业和课程数据：', res.data);
				// 保存考试数据
				that.examData = res.data;
			} catch (e) {
				console.error('获取专业和课程数据失败：', e);
				app.showToast('获取专业和课程数据失败');
			}
		},
		
		// 切换考试类型
		switchExamType(type) {
			// 更新考试类型的激活状态
			this.examTypeList.forEach(item => {
				item.active = item.id === type;
			});


			console.log('切换到考试类型：', type);
			// 切换考试类型时，重新获取专业和课程数据
			this.getTypeMajorData(type);
		},
		
		// 保存课程并跳转到首页
		async navigateToHome(course,profession) {
			try {
				// 保存当前选中的考试数据到缓存
				const activeExamType = this.examTypeList.find(item => item.active);
				if (activeExamType) {
					app.globalData.config.storage.setCurrentExamData(activeExamType);
				}

				// 保存当前选中的专业数据到缓存（移除courses字段）
				const professionData = { ...profession };
				delete professionData.courses;
				app.globalData.config.storage.setCurrentProfessionData(professionData);

				// 保存当前选中的课程数据到缓存（数组形式，避免重复）
				let courseList = app.globalData.config.storage.getCurrentCourseData() || [];
				if (!Array.isArray(courseList)) {
					courseList = [];
				}
				// 检查课程是否已存在
				console.log('courseList:', course);
				const existingIndex = courseList.findIndex(item => item.id === course.id);
				if (existingIndex !== -1) {
					// 如果课程已存在，先从原位置删除
					courseList.splice(existingIndex, 1);
				}
				// 将课程添加到数组最前面
				courseList.unshift(course);
				app.globalData.config.storage.setCurrentCourseData(courseList);

				// 保存成功后跳转到首页
				uni.reLaunch({
					url: '/pages/index/index'
				});
			} catch (e) {
				console.log(e);
				app.showToast('加入课程失败');
			}
		}
	}
};